iT邦幫忙

2026 iThome 鐵人賽

DAY 10
0
佛心分享-IT 人自學之術

當 Python 初學者遇到 AI:30 天人機協作學習手記系列 第 10

[Day 10] 幫資料貼上專屬姓名貼:Python 容器資料結構(三)Dictionary 字典

  • 分享至 

  • xImage
  •  

今日對話:怎麼儲存「有對應關係」的資料?

我的 Prompt(提示詞):

「我已經學會 List、Tuple 和 Set 了。請用白話文告訴我 Python 的『Dictionary(字典)』是什麼?什麼是 Key-Value?另外,請教我如何建立字典,以及怎麼安全地從字典裡拿資料?」

AI 導師的建議與拆解

AI 導師這次用了一個大家都很熟悉的「通訊錄」比喻,完美解釋了字典的運作邏輯:

  1. 什麼是 Dictionary?
    想像一本真實的字典或手機通訊錄。當你想找某個人的電話時,你會先找他的「名字」,然後對應出他的「號碼」。
    在 Python 中,字典就是由這種 「鍵(Key)」與「值(Value)」 成雙成對組成的資料結構。

  2. 語法與規則

語法:跟 Set 一樣使用大括號 {},但裡面放的是 Key: Value 的組合,中間用冒號隔開。例如:{"name": "Alex", "age": 20}。
Key(鍵)的規則:必須是獨一無二且不可變的(通常用字串或整數)。就像通訊錄裡不能有兩個完全一模一樣的名字,不然 Python 會不知道你要找哪一個。
Value(值)的規則:非常自由!裡面可以裝字串、數字,甚至裝另一個 List 或字典。

  1. 如何安全地拿資料?

一般拿法:字典["Key"]。缺點是如果這個 Key 不存在,程式會當機(KeyError)。
AI 推薦的安全拿法:字典.get("Key")。如果 Key 不存在,它只會默默回傳一個 None(沒有東西),程式依然能平安運作,甚至還可以設定找不到時的預設值!

實作筆記與驗證

看懂了 Key 和 Value 的關係後,我在 VS Code 建立了 day10.py檔案,寫了一個「遊戲玩家狀態面板」,順便測試怎麼把字典跟前幾天學的 for 迴圈結合起來:

python
#1. 建立一個字典 (Key: Value)
player_profile = {
"name": "Arthur",
"level": 15,
"job": "騎士",
"skills": ["劍術", "防禦", "治癒"] # Value 可以是一個 List!
}
print(f"玩家名稱:{player_profile['name']}")

#2. 安全拿資料示範 (.get)
#print(player_profile['guild']) # 這樣寫如果沒有 guild 會直接報錯當機
print(f"玩家公會:{player_profile.get('guild', '無公會')}") # 安全拿法,找不到就給預設值

#3. 新增與修改資料
player_profile["level"] = 16 # 修改:Key 存在,直接更新 Value
player_profile["guild"] = "獅心騎士團" # 新增:Key 不存在,直接新增一組
print(f"\n升級後的面板:{player_profile}")

#4. 迴圈走訪字典的絕招 (.items())
print("\n--- 玩家詳細屬性列表 ---")
#使用 .items() 可以同時把 Key 和 Value 抓出來
for key, value in player_profile.items():
print(f"【{key}】: {value}")

今日小結

這幾天一口氣把 Python 的四大容器全部收服了。


上一篇
[Day 09] 不可變與不重複的魔法:Python 容器資料結構(二)Tuple 與 Set
系列文
當 Python 初學者遇到 AI:30 天人機協作學習手記10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言